var definedType;
var definedCode;
    $(function () {
    	//状态
    	$.getJSON("/zhgl-jzstyxx-manage/logger/selectByStatus", function (data) {
    		definedType=data
	        var tpl = document.getElementById('StatusTemplate').innerHTML;
	        var html = template(tpl, {dict: data,list:""});
	        $("select[name='selectByDefinedType']").html(html);
	    });
        //1.初始化Table
        var oTable = new TableInit();
        oTable.Init();
        $("#btn_query").click(function () {
          $('#tb_defined').bootstrapTable('refreshOptions',{pageNumber:1});
          $('#tb_defined').bootstrapTable('refresh');
        });
    });
    var TableInit = function () {
        var oTableInit = new Object();
        //初始化Table
        oTableInit.Init = function () {
            $('#tb_defined').bootstrapTable({
                url:'/zhgl-jzstyxx-manage/logger/getPage',         //请求后台的URL（*）
                method: 'post',                      //请求方式（*）
                toolbar: '#toolbar',                //工具按钮用哪个容器
                dataType: 'json',
                singleSelect: false,               //false是为多选。true为单选
                striped: true,                      //是否显示行间隔色
                cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                pagination: true,                   //是否显示分页（*）
                sortable: true,                     //是否启用排序
                sortOrder: "asc",                   //排序方式
                queryParams: oTableInit.queryParams,//传递参数（*）
                sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
                pageNumber: 1,                       //初始化加载第一页，默认第一页
                pageSize: 10,                       //每页的记录行数（*）
                pageList: [10, 20, 30],      //可供选择的每页的行数（*）
                strictSearch: true,
                clickToSelect: true,                //是否启用点击选中行
		     // height: 1000,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
                uniqueId: "id",                     //每一行的唯一标识，一般为主键列
                cardView: false,                    //是否显示详细视图
              //detailView: false,                   //是否显示父子表
                rowStyle: function rowStyle(row, index) {
                    return {
                        css: {"font-size": "14px", "height": "40px", "line-height": 1,"color":"#666666 !important"}
                    };
                },
                columns: [
                     {
                        checkbox: true
                     },
                     {
         				field : 'id',
         				title : '序号',
         				align : 'center',
         				width : '20%',
         				formatter : function(value, row, index) {
         					var pageSize=$('#tb_defined').bootstrapTable('getOptions').pageSize;//通过表的#id可以得到每页多少条
                 			var pageNumber=$('#tb_defined').bootstrapTable('getOptions').pageNumber;//通过表的#id可以得到当前第几页
         					return pageSize*(pageNumber-1)+index+1;
         				}
         			},
                     {
                   		 field: 'definedName',
                   		 title: '名称',
                   		 align: 'left',
                   	     width: '20%',
               		 },
               		 {
               			field: 'definedTypeName',
                        title: '类型',
                        align: 'left',
                        width: '20%',
                     },
                     {
                     	field:'definedVersion',
                     	title:'版本号',
                      	align:'left',
                      },
                      {
                          field: 'definedContentName',
                          title: '文件名称',
                          align:'left',
                      },
                     /* {
                          field: 'id',
                          title: '文件',
                          formatter:function(value,row,index){
                          	return "<a href=\"/zhgl-jzstyxx-manage/logger/Newdownload?id="+row.id+"\"target=\"_black\"><font color=\"blue\">下载</font></a>"
                          }
                      }*/
                 ]
             });
         };
        //得到查询的参数
        oTableInit.queryParams = function (params) {
            var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
                limit        : params.limit,   //页面大小
                offset       : params.offset,  //页码
                definedVersion: $("#selectBydefinedVersion").val(),
                definedName   : $("#selectBydefinedName").val(),
                definedType   : $("#selectByDefinedType").val(),
           	 };
            return temp;
        };
        return oTableInit;
    }
    
    
    
    var TableInits = function () {
        var oTableInits = new Object();
        //初始化Table
        oTableInits.Init = function () {
            $('#table_hist').bootstrapTable({
                url:'/zhgl-jzstyxx-manage/logger/getByCustomCode',         //请求后台的URL（*）
                method: 'post',                      //请求方式（*）
                //toolbar: '#toolbar',                //工具按钮用哪个容器
                dataType: 'json',
                singleSelect: false,               //false是为多选。true为单选
                striped: true,                      //是否显示行间隔色
                cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                pagination: true,                   //是否显示分页（*）
                sortable: true,                     //是否启用排序
                sortOrder: "asc",                   //排序方式
                queryParams: oTableInits.queryParams,//传递参数（*）
                sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
                pageNumber: 1,                       //初始化加载第一页，默认第一页
                pageSize: 10,                       //每页的记录行数（*）
                //pageList: [10, 20, 30],      //可供选择的每页的行数（*）
                strictSearch: true,
               // clickToSelect: true,                //是否启用点击选中行
		     // height: 1000,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
                uniqueId: "id",                     //每一行的唯一标识，一般为主键列
                cardView: false,                    //是否显示详细视图
              //detailView: false,                   //是否显示父子表
                rowStyle: function rowStyle(row, index) {
                    return {
                        css: {"font-size": "14px", "height": "40px", "line-height": 1,"color":"#666666 !important"}
                    };
                },
                columns: [
                     {
         				field : 'id',
         				title : '序号',
         				align : 'center',
         				width : '20%',
         				formatter : function(value, row, index) {
         					var pageSize=$('#table_hist').bootstrapTable('getOptions').pageSize;//通过表的#id可以得到每页多少条
                 			var pageNumber=$('#table_hist').bootstrapTable('getOptions').pageNumber;//通过表的#id可以得到当前第几页
         					return pageSize*(pageNumber-1)+index+1;
         				}
         			},
                     {
                   		 field: 'definedName',
                   		 title: '名称',
                   		 align: 'left',
                   	     width: '20%',
               		 },
               		 {
               			field: 'definedTypeName',
                        title: '类型',
                        align: 'left',
                        width: '20%',
                     },
                     {
                     	field:'definedVersion',
                     	title:'版本号',
                      	align:'left',
                      },
                      {
                          field: 'definedContentName',
                          title: '文件名称',
                          align:'left',
                      },
                      {
                          field: 'createdTime',
                          title: '更新时间',
                          align:'left',
                          formatter:function(value,row,index){
                            	if(value!=null){
                            		return new Date(value).Format("yyyy-MM-dd hh:mm:ss"); 
                            	}	
                            	else{
                            		return "";
                            	}
                            }
                      },
                      {
                          field: 'id',
                          title: '文件',
                          formatter:function(value,row,index){
                          	return "<a href=\"/zhgl-jzstyxx-manage/logger/download?id="+row.id+"\"target=\"_black\"><font color=\"blue\">下载</font></a>"
                          }
                      }
                 ]
             });
         };
        //得到查询的参数
        oTableInits.queryParams = function (params) {
        	var rows=$("#tb_defined").bootstrapTable("getSelections");
            var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
                limit        : params.limit,   //页面大小
                offset       : params.offset,  //页码
                definedCode  : rows[0].definedCode,
           	 };
            return temp;
        };
        return oTableInits;
    }
    //新增模态框
    function addMap(){
    		var tpl = document.getElementById('myFormTemplate').innerHTML;
    		var html = template(tpl, {app:""});
    		$("#myform").html(html);
    		$("#proghide").hide();
    		var tpl2 = document.getElementById('StatusTemplate').innerHTML;
    		var html2 = template(tpl2, {dict:definedType,list:""});
    		$("select[name='inputByDefinedType']").html(html2);
    		$('#myModal').modal({backdrop: 'static', keyboard: false});
    		$(".modal-backdrop.fade.in").hide();//隐藏遮罩  
    	}
    //弹出框重置
    function empty(){
    	 window.wxc.xcConfirm("确认重置吗？", window.wxc.xcConfirm.typeEnum.confirm,{
    			title: "提示",
    			onOk:  function(){
    				document.getElementById("myform").reset();	
    		}
    	 })
    }
  //把新增数据存入数据库
    function add(){
    	if (validform().form()) {
    		var file = document.getElementById("file").files[0];
   	   	if(file==null){
   	    	window.wxc.xcConfirm("请选择文件", window.wxc.xcConfirm.typeEnum.confirm,{
	    		title: "提示",
	    		btn: parseInt("0001",2), //确定按钮
   	    	});
   	    }else{
   	   	    var size=file.size;
   	   	    var filename=file.name.split(".");
   	   	    if(size>10485760){
   	   	    	window.wxc.xcConfirm("文件不能超过10mb，请重新选择", window.wxc.xcConfirm.typeEnum.confirm,{
   	   	    		title: "提示",
   	   	    		btn: parseInt("0001",2), //确定按钮
   	   	    	});
   	   	    } else if(filename[filename.length-1]!="class"){
	   	    	window.wxc.xcConfirm("请上传class文件", window.wxc.xcConfirm.typeEnum.confirm,{
	   	    		title: "提示",
	   	    		btn: parseInt("0001",2), //确定按钮
	   	    	});
	   	    }else{
	    		 $("#proghide").show();
   	    		 increment( )
   	    		 $(':button').attr('disabled',"true");
	   	    	var file = document.getElementById("file").files[0];
	   	    	var form = new FormData();
	   	    	form.append("definedName",$("#inputBydefinedName").val());
	   	    	form.append("definedVersion",$("#inputBydefinedVersion").val());
	   	    	form.append("definedType",$("#inputByDefinedType").val()); 
	   	    	form.append("file",file);
	   	    	$.ajax({
	   	    		url: "/zhgl-jzstyxx-manage/logger/file",
	   	    		type: 'post',
	   	    		data: form,
	   	    		dataType: 'json',
	   	    		cache: false,                      // 不缓存
	   	    		processData: false,                // jQuery不要去处理发送的数据
	   	    		contentType: false,                // jQuery不要去设置Content-Type请求头
	   	    		success: function (data) {
    				if (data.state==200) {
    					$("#prog").css("width",100 + "%").text(100 + "%");
	  			 		$(':button').removeAttr("disabled");
    		  			window.wxc.xcConfirm("保存成功！", window.wxc.xcConfirm.typeEnum.confirm,{
    						title: "提示",
    						btn: parseInt("0001",2), //确定按钮
    						onOk: function(){
    							$('#myModal').modal('hide');
    							$('#tb_defined').bootstrapTable('refresh');
    							$("#proghide").hide();
    						},
    						onClose:function(){
    							$('#myModal').modal('hide');
    							$('#tb_defined').bootstrapTable('refresh');
    							$("#proghide").hide();
    						},
    		  			});
    				} else {
    		  		   window.wxc.xcConfirm(data.message, window.wxc.xcConfirm.typeEnum.confirm,{
    						title: "提示",
    						btn: parseInt("0001",2), //确定按钮
    						onOk: function(){
    							$('#myModal').modal('hide');
    							$('#tb_defined').bootstrapTable('refresh');
    							$("#proghide").hide();
    							value=0;
    						},
    						onClose:function(){
    							$('#myModal').modal('hide');
    							$('#tb_defined').bootstrapTable('refresh');
    							$("#proghide").hide();
    							value=0;
    						},
    					});
    				}
	   	    		}
	   	    	});
	   	    }
      }
   }
  } 
  //更新
  function modify(){
	   var rows=$("#tb_defined").bootstrapTable("getSelections");
	   if(rows.length==0){
			window.wxc.xcConfirm("请选择需要操作的数据！", window.wxc.xcConfirm.typeEnum.confirm,{
				title: "提示",
				btn: parseInt("0001",2), //确定按钮
			})
	   }
	   else if(rows.length>1){
		   window.wxc.xcConfirm("只能选择单条数据进行操作！", window.wxc.xcConfirm.typeEnum.confirm,{
				title: "提示",
				btn: parseInt("0001",2), //确定按钮
			});	
	   }else{
			var id=rows[0].id;
			 $.ajax({
			     url:"/zhgl-jzstyxx-manage/logger/getById",
			     type: 'post',
			     data:{"id":id},
			     dataType: 'json',
			     success: function (data) {
			          if (data!= null) {
			              var tpl = document.getElementById('myFormTemplate').innerHTML;
			              var html = template(tpl, {app: data});
			              $("#modify").html(html);
			              var tpl2 = document.getElementById('StatusTemplate').innerHTML;
			              var html2 = template(tpl2, {dict:definedType,list:data.definedType});
			              $("select[name='inputByDefinedType']").html(html2);
			              $('#ModefyBymyModal').modal({backdrop: 'static', keyboard: false});
			              $(".modal-backdrop.fade.in").hide();//隐藏遮罩
			            } 
	   }
	});
   }
  }
  //把更新数据存入数据库
  function modifySave(){
  	if (validform2().form()) {
   	   	    var file = document.getElementById("file").files[0];
   	   	    if(file==null){
	   	    	window.wxc.xcConfirm("请选择文件", window.wxc.xcConfirm.typeEnum.confirm,{
   	    		title: "提示",
   	    		btn: parseInt("0001",2), //确定按钮
	   	    	});
	   	    }else{
	   	   	    var size=file.size;
		   	    var filename=file.name.split(".");
		   	    if(size>10485760){
	   	   	    	window.wxc.xcConfirm("文件不能超过10mb，请重新选择", window.wxc.xcConfirm.typeEnum.confirm,{
	   	   	    		title: "提示",
	   	   	    		btn: parseInt("0001",2), //确定按钮
	   	   	    	});
	   	   	    } else if(filename[filename.length-1]!="class"){
		   	    	window.wxc.xcConfirm("请上传class文件", window.wxc.xcConfirm.typeEnum.confirm,{
		   	    		title: "提示",
		   	    		btn: parseInt("0001",2), //确定按钮
		   	    	});
		   	    }else{
		   	    		 $("#proghide").show();
		   	    		 increment( )
		   	    		 $(':button').attr('disabled',"true");
				   	     var form = new FormData();
			    	  	 form.append("definedName",$("#inputBydefinedName").val());
			    	  	 form.append("definedVersion",$("#inputBydefinedVersion").val());
			    	  	 form.append("definedType",$("#inputByDefinedType").val()); 
			    	  	 form.append("id",$("#id").val());
			    	  	 form.append("file",file);
			    	  	 $.ajax({
			  	     		 url: "/zhgl-jzstyxx-manage/logger/fileUpdate",
			  	     		 type: 'post',
			  	     		 data: form,
			  	     		 dataType: 'json',
			 	             cache: false,                      // 不缓存
			 	             processData: false,                // jQuery不要去处理发送的数据
			 	             contentType: false,                // jQuery不要去设置Content-Type请求头
			  	             success: function (data) {
			  			 	   if (data.state==200) {
			  			 		$("#prog").css("width",100 + "%").text(100 + "%");
			  			 		$(':button').removeAttr("disabled");
			  		  			window.wxc.xcConfirm("更新成功！", window.wxc.xcConfirm.typeEnum.confirm,{
			  						title: "提示",
			  						btn: parseInt("0001",2), //确定按钮
			  						onOk: function(){
			  							$('#ModefyBymyModal').modal('hide');
			  							$('#tb_defined').bootstrapTable('refresh');
			  							$("#proghide").hide();
			  							value=0;
			  						},
			  						onClose:function(){
			  							$('#ModefyBymyModal').modal('hide');
			  							$('#tb_defined').bootstrapTable('refresh');
			  							$("#proghide").hide();
			  							value=0;
			  						},
			  				 });
			  	  		 } else {
			  		  		   window.wxc.xcConfirm(data.message, window.wxc.xcConfirm.typeEnum.confirm,{
			  						title: "提示",
			  						btn: parseInt("0001",2), //确定按钮
			  					});
			  	  		 }
			  	 	}
			   	 });
			  }
	   	    }
    }
 }
 //校验
function validform() {
        return $("#myform").validate({
            rules: {
            	inputBydefinedName:{
                    required:true,
                    maxlength:16,
                    remote:{
                   		   url:"/zhgl-jzstyxx-manage/logger/checkName",
                     	   type:"post",
                           dataType:"json",
                           async:false,
                           cache:false,
                           data:{
                        	   definedName:function(){
                       		    var formData = $('#myform').serializeJSON();
                       		    return formData.inputBydefinedName;
                       	 	   }
                        	},
               		       dataFilter:function(data){
               				  return data;
               		       }
                    },
                    stringCheck:true
               },
               inputByDefinedType: {
                    required: true,
                },
                inputBydefinedVersion:{
               	  required: true,
               	  isVersion:true,
                },
            },
   		     messages: {
   		    	inputBydefinedName:{
   		             required:"名称不能为空",
   		             maxlength:"最多输入16位",
   		          	 remote:"名称已存在",
   		         	 stringCheck:jQuery.validator.addMethod("stringCheck", function(value, element) {
		            	 var all= /^[a-zA-Z0-9\u4e00-\u9fa5]+$/;
		                 return this.optional(element) || all.test(value);       
		             }, "不能有特殊字符")
   		        },
   		     inputByDefinedType: {
   		             required: "类型能为空",
   		        },
   		     inputBydefinedVersion:{
   		    	 	required : "版本不能为空",
   		    	    isVersion:jQuery.validator.addMethod("isVersion", function(value, element) {
		            	 var all=/^[0-9]+(\.[0-9]{0,}){0,}$/;
		                 return this.optional(element) || all.test(value);       
		             }, "版本号格式错误"),
   		         },
   		 },
        })
    }
//更新校验
function validform2() {
    return $("#modify").validate({
        rules: {
        	inputBydefinedVersion:{
           	  required: true,
           	  isVersion:true,
         	  remote:{
         		     url:"/zhgl-jzstyxx-manage/logger/checkVersion",
              	     type:"post",
                     dataType:"json",
                     async:false,
                     cache:false,
                     data:{
                          definedVersion:function(){
             		          var formData = $('#modify').serializeJSON();
             		          return formData.inputBydefinedVersion;
             	 	        },
             	 	        id:function(){
             		          var formData = $('#modify').serializeJSON();
             		          return formData.id;
             	 	        }
              	          },
     				 dataFilter:function(data){
     					 return data;
     				     }
         	 	     }
                },
        },
		     messages: {
		    	 inputBydefinedVersion:{
		        	 required: "版本不能为空",
		        	 isVersion:jQuery.validator.addMethod("isVersion", function(value, element) {
		        		 var all=/^[0-9]+(\.[0-9]{0,}){0,}$/;
		                 return this.optional(element) || all.test(value);       
		             }, "版本号格式错误"),
		             remote:"版本号不能低于之前版本号"
		         },
		 },
    })
}
//批量删除/删除
function delAll(){
	  var rows=$("#tb_defined").bootstrapTable("getSelections");
	  if(rows.length==0){
		  window.wxc.xcConfirm("请选择你要删除的数据！", window.wxc.xcConfirm.typeEnum.confirm,{
				title: "提示",
				btn: parseInt("0001",2), //确定按钮
			});
	  }else{
		  var ids="";
		  for(var i=0;i<rows.length;i++){
			ids+=rows[i].id+",";
		  }
		  ids=ids.substring(0,ids.length-1);
		  var data={
				  id:ids,
		  }
			 window.wxc.xcConfirm("确定删除所选记录吗", window.wxc.xcConfirm.typeEnum.confirm,{
					title: "提示",
					onOk:  function(){
					    $.ajax({
					        type: "POST",
					        url:"/zhgl-jzstyxx-manage/logger/deleteAll",
					        dataType: 'json',
					        data:data,
					        success: function (data) {
					            	if (data.state==200) {
					          	 		 window.wxc.xcConfirm("删除成功！", window.wxc.xcConfirm.typeEnum.confirm,{
						      				 title: "提示",
						      				 btn: parseInt("0001",2), //确定按钮
						      			     onOk: function(){
								                $('#tb_defined').bootstrapTable('refresh');
						      			     },
						      			     onClose: function(){
								                $('#tb_defined').bootstrapTable('refresh');
						      			     },
					          	 		 });
					           		 }else {
					          	  		window.wxc.xcConfirm("数据异常，请重试！", window.wxc.xcConfirm.typeEnum.confirm,{
						      				title: "提示",
						      				btn: parseInt("0001",2), //确定按钮
					      				});
					            	}
					          }
					       });	
						}
			 		})
	  			}
			}
//查看历史记录
function updateRecord(){
	 var rows=$("#tb_defined").bootstrapTable("getSelections");
	   if(rows.length==0){
			window.wxc.xcConfirm("请选择需要操作的数据！", window.wxc.xcConfirm.typeEnum.confirm,{
				title: "提示",
				btn: parseInt("0001",2), //确定按钮
			})
	   }
	   else if(rows.length>1){
		   window.wxc.xcConfirm("只能选择单条数据进行操作！", window.wxc.xcConfirm.typeEnum.confirm,{
				title: "提示",
				btn: parseInt("0001",2), //确定按钮
			});	
	   }else{
//		   alert("111");
		    definedCode=rows[0].definedCode;
		    var tpl = document.getElementById('recordTemplate').innerHTML;
            var html = template(tpl, {});
            $("#record").html(html);
            $('#recordBymyModel').modal({backdrop: 'static', keyboard: false});
            $(".modal-backdrop.fade.in").hide();//隐藏遮罩
            //1.初始化Table
		        var oTables = new TableInits();
		        oTables.Init();
		        $("#table_hist").click(function () {
		          $('#table_hist').bootstrapTable('refreshOptions',{pageNumber:1});
		          $('#table_hist').bootstrapTable('refresh');
		        });
/*			 $.ajax({
			     url:"/zhgl-jzstyxx-manage/logger/getByCustomCode",
			     type: 'post',
			     data:{"definedCode":definedCode},
			     dataType: 'json',
			     success: function (data) {
			           if (data!= null) {
			              var tpl = document.getElementById('recordTemplate').innerHTML;
			              var html = template(tpl, {sysdefined: data});
			              $("#record").html(html);
			              $('#recordBymyModel').modal({backdrop: 'static', keyboard: false});
			              $(".modal-backdrop.fade.in").hide();//隐藏遮罩
			            }  
	   }
	}); */
 }
}

//下载
function save(){
	 var rows=$("#tb_defined").bootstrapTable("getSelections");
	   if(rows.length==0){
			window.wxc.xcConfirm("请选择需要操作的数据！", window.wxc.xcConfirm.typeEnum.confirm,{
				title: "提示",
				btn: parseInt("0001",2), //确定按钮
			})
	   }
	   else if(rows.length>1){
		   window.wxc.xcConfirm("只能选择单条数据进行操作！", window.wxc.xcConfirm.typeEnum.confirm,{
				title: "提示",
				btn: parseInt("0001",2), //确定按钮
			});	
	   }else{
		   var id=rows[0].id;
		   window.location ="/zhgl-jzstyxx-manage/logger/Newdownload?id="+id;
	   }	
}
var value = 0;
var time = 50;
//进度条复位函数
function reset( ) {
  value = 0
    $("#prog").removeClass("progress-bar-success").css("width","0%").text("等待启动");
    //setTimeout(increment,5000);
}
//百分数增加，0-30时为红色，30-60为黄色，60-90为蓝色，>90为绿色
function increment() {
	if(value==99){
	    return
	 }
    value += 1;
    $("#prog").css("width",value + "%").text(value + "%");
    if (value>=0 && value<=30) {
        $("#prog").addClass("progress-bar-danger");
    }
    else if (value>=30 && value <=60) {
        $("#prog").removeClass("progress-bar-danger");
        $("#prog").addClass("progress-bar-warning");
    }
    else if (value>=60 && value <=90) {
        $("#prog").removeClass("progress-bar-warning");
        $("#prog").addClass("progress-bar-info");
    }
    else if(value >= 90 && value<100) {
        $("#prog").removeClass("progress-bar-info");
        $("#prog").addClass("progress-bar-success");    
    }
    else{
        setTimeout(reset,3000);
        return;
    }
    st = setTimeout(increment,time);
}